%% This document created by Scientific Word (R) Version 3.0

\documentclass[a4paper,twoside]{book}
\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}
\usepackage{amsmath}
\usepackage{latexsym}
\usepackage{graphicx}
\usepackage{amsfonts}
\usepackage{amssymb}
%TCIDATA{OutputFilter=latex2.dll}
%TCIDATA{CSTFile=book.cst}
%TCIDATA{LastRevised=Wed Mar 08 15:16:06 2000}
%TCIDATA{<META NAME="GraphicsSave" CONTENT="32">}
\setlength{\oddsidemargin}{0.cm}
\setlength{\evensidemargin}{0.cm}
\setlength{\textwidth}{13.cm}
\setlength{\textheight}{16.cm}
\setlength{\parskip}{0.15cm}
\setlength{\parindent}{0.pt}
\newenvironment{linea}{
\begin{picture}(300,10)
\line(300,0){300}
\end{picture}}{ }
\newenvironment{Ej E/S}
               {\setlength{\parskip}{0.0cm}}
               {\endlist}
\newenvironment{Lista letras}
               {\list{\alph{letra}.}{
                        \usecounter{letra}
                        \itemsep     0.0cm
                        \itemindent   0.0cm
                        \listparindent 0.0cm
                        \itemindent 0.0cm
                        \rightmargin  0.5cm
                        \leftmargin 1.0cm
                        \labelwidth 0.5cm
                        \parsep 0.0cm
                        \topsep 0.0cm
                        \parskip 0.0cm}}
               {\endlist}
\newenvironment{Programa}
               {\ttfamily\small\list{\arabic{conta}.}{\usecounter{conta}
                        \itemsep     0.0cm
                        \itemindent   0.0cm
                        \listparindent 0.0cm
                        \itemindent 0.0cm
                        \rightmargin  0.7cm
                        \leftmargin 1.0cm
                        \labelwidth 0.5cm
                        \parsep 0.0cm
                        \topsep 0.0cm
                        \parskip 0.0cm}}
               {\endlist}
\newenvironment{Programa-cuadro}
               {\begin{lrbox}{\savepar}
                \begin{minipage}[b]{13.cm}
                \ttfamily\list{\arabic{conta}.}{\usecounter{conta}
                        \itemsep     0.0cm
                        \itemindent   0.0cm
                        \listparindent 0.0cm
                        \itemindent 0.0cm
                        \rightmargin  0.7cm
                        \leftmargin 1.0cm
                        \labelwidth 0.5cm
                        \parsep 0.0cm
                        \topsep 0.0cm
                        \parskip 0.0cm}}
               {\endlist\end{minipage}\end{lrbox}\fbox{\usebox{\savepar}}}
\newenvironment{Lista guiones}{
     \begin{list}{-}{
     \setlength{\leftmargin}{0.5cm}
     \setlength{\labelwidth}{0.5cm}
     \setlength{\parsep}{0.pt}
     \setlength{\topsep}{0.0cm}
     \setlength{\parsep}{0.pt}
     \setlength{\itemsep}{0.pt}
     \setlength{\parskip}{0.pt}}
   }
   {\end{list}}
\newsavebox{\savepar}
\newenvironment{recuadro}{
\begin{lrbox}{\savepar}
\begin{minipage}[b]{13.cm}
}
{\end{minipage}\end{lrbox}\fbox{\usebox{\savepar}}}
\newenvironment{Solucion}{\newline \Large {\textbf {SOLUCI\'ON}}}{ }
\newcommand{\enunciado}{\Large{\textbf{ENUNCIADO}}}

\begin{document}
\newcounter{conta} \newcounter{letra} \setcounter{letra}{1}

{\Large {\textbf{ENUNCIADO}} -L2}

Para el almacenamiento de las variables din\'{a}micas en el mont\'{o}n
(''heap'') de un compilador [se] C se ha previsto incluir en la biblioteca de
funciones del entorno de ejecuci\'{o}n un sistema con estructura de
subdivisi\'{o}n fija (''Buddy-System''). Se sabe que se dispondr\'{a} de un
bloque contiguo de memoria de 1024 bytes, y que el tama\~{n}o requerido por
los campos de control de cada registro ser\'{a} de 4 bytes. Se considera la
utilizaci\'{o}n de una serie de Fibonacci: 16, 32, 52, 88, 144, 384, 624,
1012; desperdiciando el resto que queda hasta 1024. Se sabe que un dato de
tipo car\'{a}cter ocupa 1 byte, un dato de tipo puntero ocupa 2 bytes. El
tama\~{n}o requerido para los datos compuestos corresponde a la agragaci\'{o}n
del tama\~{n}o requerido para todas sus componentes.

Calcular el tama\~{n}o del objeto asociado a cada puntero declarado en la
secci\'{o}n de variables del programa que aparece a continuaci\'{o}n. Dibujar
los esquemas representativos del estado del mont\'{o}n en tiempo de
ejecuci\'{o}n al alcanzar cada una de las marcas que aparecen en el cuerpo del
siguiente programa:

\begin{Programa}
\item  typedef\ struct\ \{

\item \ \ \ \ int\ cod;

\item \ \ \ \ char\ *estacion;

\item \}\ CLAVE\texttt{[22]};

\item  CLAVE\ datosid\texttt{[50]},unaest,*p1;

\item  typedef\ struct\ \{

\item \ \ \ \ int\ temp\texttt{[12]};

\item \ \ \ \ int\ rad\texttt{[12]};

\item \ \ \ \ float\ pluv\texttt{[12]};

\item \}\ CLIMA;

\item  CLIMA\ *p2,*l1;

\item  typedef\ int\ VALMED\texttt{[4]}\texttt{[12]};

\item  VALMED\ *p3,*l2;

\item  main()\ \{

\item \ \ \ \ int\ i;

\item \ \ \ \ for(i=0;i<50;++i)\ \{

\item \ \ \ \ \ \ \ \ datosid\texttt{[i]}.cod=i;

\item \ \ \ \ \}$\longleftarrow$

\item \ \ \ \ p1=(CLAVE\ *)\ malloc(sizeof(CLAVE));

\item \ \ \ \ p2=(CLAVE\ *)\ malloc(sizeof(CLIMA));

\item \ \ \ \ p3=(VALMED\ *)\ malloc(sizeof(VALMED));$\longleftarrow$

\item \ \ \ \ free(p1);

\item \ \ \ \ free(p3);$\longleftarrow$

\item \ \ \ \ l1=(CLIMA\ *)\ malloc(sizeof(CLIMA));

\item \ \ \ \ l2=(VALMED\ *)\ malloc(sizeof(VALMED));$\longleftarrow$

\item \ \ \ \ free(l1);$\longleftarrow$

\item \}
\end{Programa}

Tama\~{n}o de los objetos asociados a los punteros declarados en la
secci\'{o}n de variables:
\end{document}